﻿using Ninject.Modules;
using WaitLess.Business.Data.Foursquare;
using WaitLess.Business.Data.Foursquare.Interfaces;
using WaitLess.Business.Data.Web;
using WaitLess.Business.Data.Web.Interfaces;
using WaitLess.Business.Repositories;
using WaitLess.Business.Repositories.Interfaces;
using WaitLess.Business.Services;
using WaitLess.Business.Services.Interfaces;

namespace WaitLess.Business
{
    public class BusinessModule : NinjectModule
    {
        public override void Load()
        {
            Bind<IWebRequestor>().To<WebRequestor>().InSingletonScope();
            Bind<IFoursquareContext>().To<FoursquareContext>().InSingletonScope();

            Bind<IDistrictshuisRepository>().To<DistrictshuisRepository>().InSingletonScope();
            Bind<IStadskantoorRepository>().To<StadskantoorRepository>().InSingletonScope();

            Bind<IVenuesRepository>().To<VenuesRepository>().InSingletonScope();
            Bind<ICheckinRepository>().To<CheckinRepository>().InSingletonScope();

            Bind<IMunicipalOfficeLoader>().To<MunicipalOfficeLoader>().InSingletonScope();
        }
    }
}
